package net.mikoo.seals.boss.biz.services;

import java.util.List;

import net.mikoo.seals.boss.model.Geo;
import net.mikoo.seals.boss.model.GeoType;
import net.sf.json.JSONArray;

/**
 *                       
 * @Filename GeoServices.java
 *
 * @Description 
 *
 * @Version 1.0
 *
 * @Author huangxiaoming
 *
 * @Email huangxm129@163.com
 *       
 * @History
 *<li>Author: huangxiaoming</li>
 *<li>Date: 2014年12月3日</li>
 *<li>Version: 1.0</li>
 *<li>Content: create</li>
 *
 */
public interface GeoServices {
	
	/**
	 * 
	 * @Description  保存表单数据
	 *
	 * @Version 1.0
	 *
	 * @Author huangxiaoming
	 *
	 * @Email huangxm129@163.com
	 *
	 * @History
	 *
	 *<li>Author: huangxiaoming</li>
	 *<li>Date: 2014年12月4日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 * @param geo
	 * @return
	 *
	 */
	public void save(Geo geo);

	/**
	 * 
	 * @Description 根据主键修改数据
	 *
	 * @Version 1.0
	 *
	 * @Author huangxiaoming
	 *
	 * @Email huangxm129@163.com
	 *
	 * @History
	 *
	 *<li>Author: huangxiaoming</li>
	 *<li>Date: 2014年12月4日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 * @param geo
	 * @return
	 *
	 */
	public void modifyByPrimaryKey(Geo geo);
	
	/**
	 * 
	 * @Description  根据主键查询数据
	 *
	 * @Version 1.0
	 *
	 * @Author huangxiaoming
	 *
	 * @Email huangxm129@163.com
	 *
	 * @History
	 *
	 *<li>Author: huangxiaoming</li>
	 *<li>Date: 2014年12月4日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 * @param geoId
	 * @return
	 *
	 */
	public Geo loadByPrimaryKey(Long geoId);
	
	
	/**
	 * 
	 * @Description 根据产品主键ID列表批量删除数据
	 *
	 * @Version 1.0
	 *
	 * @Author huangxiaoming
	 *
	 * @Email huangxm129@163.com
	 *
	 * @History
	 *
	 *<li>Author: huangxiaoming</li>
	 *<li>Date: 2014年12月4日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 * @param geoId
	 * @return
	 *
	 */
	public void deleteByPrimaryKey(Long geoId);
	
	/**
	 * 
	 * @Description 根据主地区ID查询子地区
	 *
	 * @Version 1.0
	 *
	 * @Author huangxiaoming
	 *
	 * @Email huangxm129@163.com
	 *
	 * @History
	 *
	 *<li>Author: huangxiaoming</li>
	 *<li>Date: 2014年12月4日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 * @param parentId
	 * @return
	 *
	 */
	public List<Geo> loadByParentId(Long parentId);

	/**
	 * 查询地区类型
	 * @author huangxm
	 * 2014年12月9日 下午10:16:33
	 * @return
	 */
	public List<GeoType> loadTypes();
	
	/**
	 * 查询树形地区列表
	 * @author huangxm
	 * 2014年12月10日 下午10:30:07
	 * @return
	 */
	public List<Geo> loadAsTree();

	public JSONArray refreshCache();
	
	
}